import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_localizations/flutter_localizations.dart';

//静态路由配置
void main() => runApp(const MyApp3());

//定义根目录Widget
class MyApp3 extends StatelessWidget {
  const MyApp3({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      localizationsDelegates: const [
        //初始化默认的 Material 组件本地化
        GlobalMaterialLocalizations.delegate,
        //初始化默认的 通用 Widget 组件本地化
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
      ],
      //当前区域，如果为null则使用系统区域一般用于语言切换
      //传入两个参数，语言代码，国家代码
      //这里配制为中国
      locale: const Locale('zh', 'CN'),
      //定义当前应用程序所支持的语言环境
      supportedLocales: const [
        Locale('en', 'US'), // English 英文
        Locale('zh', 'CN'), // 中文
      ],
      routes: {
        //默认页面
        "/": (BuildContext context) => const Exam214HomePage(),
      },
    );
  }
}

class Exam214HomePage extends StatefulWidget {
  const Exam214HomePage({Key? key}) : super(key: key);

  @override
  State<Exam214HomePage> createState() => _Exam214HomePageState();
}

class _Exam214HomePageState extends State<Exam214HomePage> {
  @override
  void initState() {
    // TODO: implement initState
    super.initState();
  }

  void setControText(TextEditingController controller, String flagText) {
    //用来设置初始化时显示
    TextEditingValue value = TextEditingValue(
      //用来设置文本 controller.text = "0000"
      text: "",
      //设置光标的位置
      selection: TextSelection.fromPosition(
        //用来设置文本的位置
        TextPosition(
            affinity: TextAffinity.downstream,
            // 光标向后移动的长度
            offset: flagText.length),
      ),
    );
    //控制 初始化的时候鼠标保持在文字最后
    controller.value = value;
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      //页面的头部
      appBar: AppBar(title: const Text("标题")),
      //页面的主内容区
      body: Center(child: Container(width: 224, child: buildTextField2())),
    );
  }

  //创建文本控制器实例
  //创建方式一
  final TextEditingController _editingController = TextEditingController();

  //创建方式二 其中 text 是预设置的内容 输入光标在最前面
  final TextEditingController _controller2 =
      TextEditingController(text: "初始化内容");

  // 设置上下左右 都有边框
  Widget buildTextField2() {
    return TextField(
      controller: _editingController,
      //边框样式设置
      decoration: InputDecoration(
        //设置上下左右 都有边框
        border: OutlineInputBorder(
          //设置边框四个角的弧度
          borderRadius: BorderRadius.all(Radius.circular(40)),
        ),
      ),
    );
  }
}
